package com.chb.docter.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chb.docter.params.PatientQueryParams;
import com.hos.entity.his.CareHistory;
import com.hos.entity.his.Patient;
import com.hos.entity.his.PatientFile;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author: 陈海彬
 * @date: Created in 2023/12/12 14:52
 * @description:
 * @modified By:
 * @version:
 */
public interface PatientService {


    /**
     * 根据身份证查询患者信息
     *
     * @param idCar 身份证
     */
    Patient getPatientInfoByIdCar(String idCar);


    /**
     * 分页查询患者列表信息
     *
     * @param params 查询参数
     * @return 分页数据
     */
    Page<Patient> listPatientForPage(PatientQueryParams params);


    /**
     * 根据患者ID查询患者信息
     *
     * @param patientId 患者id
     */
    Patient getPatientById(String patientId);


    /**
     * 根据患者ID查询患者的档案信息
     *
     * @param patientId 患者id
     */
    PatientFile getPatientFileById(String patientId);


    /**
     * 根据患者ID查询患者所有信息【基础，档案，病例】
     *
     * @param patientId 患者id
     */
    List<CareHistory> getPatientAllMessageByPatientId(String patientId);


    /**
     * 根据手机号查询是否有该用户
     *
     * @param phone 手机号码
     */
    Patient selectPatientByPhone(String phone);


    /**
     * 获取患者信息
     */
    Patient getPatientInfo();


    /**
     * 修改患者头像信息
     */
    String updateAvatar(MultipartFile file);


    /**
     * 修改患者信息
     *
     * @param patient 患者请求对象
     */
    Patient updatePatientInfo(Patient patient);


    /**
     * 进行头像上传到阿里云
     * @param file 上传的文件
     */
    String upload(MultipartFile file);
}